package com.ass.llm.chat;


import com.ass.llm.constant.LLMEnum;
import com.ass.llm.dto.ChatInput;
import com.ass.llm.entity.LlmMessage;

import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;

//对话适配基类
public abstract class LLMChatAbstract {


    // 返回当前 llm 对应的枚举类型
    public abstract LLMEnum getLLm();


    //多轮对话需要将user和assistant类型的消息存储起来，并作为参数传入，以实现多轮对话
    public abstract String mtdChat(ChatInput chatInput,
                                   BiConsumer<LlmMessage,Boolean> llmConsumer,
                                   Function<String,LlmMessage> findMessage);

    //单论对话，不记录历史消息记录，仅仅作于问完拉到
    public abstract String odaChat(ChatInput chatInput);



}
